package cn.ydt.ydt.shopping.service;

import cn.ydt.ydt.pojo.shopping.dto.AddVegetableDTO;
import cn.ydt.ydt.pojo.shopping.dto.CreateVegetableOrderDTO;
import cn.ydt.ydt.pojo.shopping.dto.SimpleVegetableDTO;
import cn.ydt.ydt.pojo.shopping.model.Vegetable;
import cn.ydt.ydt.pojo.shopping.vo.DetailOrderCartVO;
import cn.ydt.ydt.pojo.shopping.vo.OrderCartVO;
import cn.ydt.ydt.pojo.shopping.vo.SimpleCartVO;
import cn.ydt.ydt.pojo.shopping.vo.SimpleVegetableVO;

import java.util.List;

public interface IVegetableService {


    /**
     * 添加菜品接口
     * @param addVegetableDTO
     */
    void addVegetable(AddVegetableDTO addVegetableDTO);

    /**
     * 根据种类获取对应的菜品列表
     * @param vegetableSort
     * @return
     */
    List<SimpleVegetableVO> getVegetableService(String vegetableSort);

    /**
     * 添加购物车
     * @param simpleVegetableDTO
     */
    void addVegetableCart(SimpleVegetableDTO simpleVegetableDTO);

    /**
     * 删除购物车
     * @param cartId
     */
    void delVegetableCart(Long cartId);


    /**
     * 添加订单
     * @param orderDTO
     */
    void addVegetableOrder(CreateVegetableOrderDTO orderDTO);

    /**
     * 设置订单已完成接口
     * @param orderId
     */
    void updateOrderComplete(Long orderId);

    /**
     *查询用户订单信息
     * @return
     */
    List<OrderCartVO> getOrderCartByOrderId();

    /**
     * 根据用户id查询购物车列表
     * @return
     */
    List<SimpleCartVO> getCartByUserId();


    /**
     * 根据id查询菜品信息
     * @param id
     * @return
     */
    Vegetable getVegetableById(Long id);

    /**
     * 根据菜名查询菜品信息
     * @param name
     * @return
     */
    Vegetable getVegetableByName(String name);

    /**
     * 根据购物车id查询购物车信息
     * @param cartId
     * @return
     */
    SimpleCartVO getCartById(Long cartId);

    /**
     *查询所有订单信息
     * @return
     */
    List<DetailOrderCartVO> getOrderCart();

    /**
     *查询当前用户订单详细信息
     * @return
     */
    List<DetailOrderCartVO> getDetailOrderByUserId();

}
